/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package appbenedictoxvi;

import java.util.ArrayList;

/**
 *
 * @author JGAMEZ
 */
public class FacturaCompra {
    
    private String concepto;
    private int idnrofactura;
    private Proveedor proveedor;
    private String fechaemision;
    private String fechavencimiento;
    private String fechapago;
    private String estado;
    private String observacion;
    private String moneda;
    //agregado
   // private double subtotal;
  //  private double igv;
  //  private double total;
    
    
    private ArrayList<DetalleCompra> items;

    public FacturaCompra(String concepto, int idnrofactura, Proveedor proveedor, String fechaemision, String fechavencimiento,
            String fechapago, String estado, String observacion, String moneda){//,double subtotal,double igv,double total) {
        this.concepto = concepto;
        this.idnrofactura = idnrofactura;
        this.proveedor = proveedor;
        this.fechaemision = fechaemision;
        this.fechavencimiento = fechavencimiento;
        this.fechapago = fechapago;
        this.estado = estado;
        this.observacion = observacion;
        this.moneda = moneda;
        //agregado
      //  this.subtotal = subtotal;
       // this.igv = igv;
      //  this.total = total;
        
        
        //Crear la coleccion de detalles de factura
        items = new ArrayList<DetalleCompra>();
    }

    public FacturaCompra() {
        
        items = new ArrayList<DetalleCompra> ();
    }

    public ArrayList<DetalleCompra> getItems() {
        return items;
    }

    public void setItems(ArrayList<DetalleCompra> items) {
        this.items = items;
    }
    
    
    

    /**
     * @return the concepto
     */
    public String getConcepto() {
        return concepto;
    }

    /**
     * @param concepto the concepto to set
     */
    public void setConcepto(String concepto) {
        this.concepto = concepto;
    }

    /**
     * @return the idnrofactura
     */
    public int getIdnrofactura() {
        return idnrofactura;
    }

    /**
     * @param idnrofactura the idnrofactura to set
     */
    public void setIdnrofactura(int idnrofactura) {
        this.idnrofactura = idnrofactura;
    }

    /**
     * @return the proveedor
     */
    public Proveedor getProveedor() {
        return proveedor;
    }

    /**
     * @param proveedor the proveedor to set
     */
    public void setProveedor(Proveedor proveedor) {
        this.proveedor = proveedor;
    }

    /**
     * @return the fechaemision
     */
    public String getFechaemision() {
        return fechaemision;
    }

    /**
     * @param fechaemision the fechaemision to set
     */
    public void setFechaemision(String fechaemision) {
        this.fechaemision = fechaemision;
    }

    /**
     * @return the fechavencimiento
     */
    public String getFechavencimiento() {
        return fechavencimiento;
    }

    /**
     * @param fechavencimiento the fechavencimiento to set
     */
    public void setFechavencimiento(String fechavencimiento) {
        this.fechavencimiento = fechavencimiento;
    }

    /**
     * @return the fechapago
     */
    public String getFechapago() {
        return fechapago;
    }

    /**
     * @param fechapago the fechapago to set
     */
    public void setFechapago(String fechapago) {
        this.fechapago = fechapago;
    }

    /**
     * @return the estado
     */
    public String getEstado() {
        return estado;
    }

    /**
     * @param estado the estado to set
     */
    public void setEstado(String estado) {
        this.estado = estado;
    }

    /**
     * @return the observacion
     */
    public String getObservacion() {
        return observacion;
    }

    /**
     * @param observacion the observacion to set
     */
    public void setObservacion(String observacion) {
        this.observacion = observacion;
    }

    /**
     * @return the moneda
     */
    public String getMoneda() {
        return moneda;
    }

    /**
     * @param moneda the moneda to set
     */
    public void setMoneda(String moneda) {
        this.moneda = moneda;
    }
    
    
     public void adicionarItem(int cantidad, ProductoCompra compraproducto) {
        //Crear el nuevo detalle con la cant y el producto
        DetalleCompra nuevoDetalleCompra = new DetalleCompra(cantidad, compraproducto);
        //items.add(nuevoDetalleCompra);
        items.add(nuevoDetalleCompra);
       
    }

    
    public double calcularTotalVenta() {
        //agregado
        double totalVenta;
        totalVenta=0;
        for (DetalleCompra detalleCompra : items) {
         totalVenta +=(detalleCompra.calcularSubtotal());
        //System.out.println(totalVenta);
        }
    return totalVenta;
        //fin agregado
    }

   public   double calcularIgv() {
        double igv= 0.18;
        double totalIgv;
        totalIgv = this.calcularTotalVenta() * igv;
//        System.out.println(totalIgv);
        return totalIgv;
    }

   public  double calcularTotalaPagar() {
        double totalVenta;
        totalVenta=this.calcularIgv() + this.calcularTotalVenta();
        return totalVenta;
    }
    
    public int getNumeroItems() {
        return items.size();
    }
    
}
